
#include<iostream>

int GetResult(int a,int b,char c)
{
//     switch(c)
//     {
//         case '+':
//             return a+b;break;
//         case '-':
//             return a-b;break;
//         case '*':
//             return a*b;break;
//         case '/':
//             return a/b;break;
//         default:
//             return 0;
//     }

}

//和对象绑定，而不是和函数逻辑绑定
class Caculate
{
public:
    int GetResult(int a,int b,char c)
    {
        return 0;
    }
   
};

class Add:public Caculate{
    public:
    int GetResult(int a,int b,char c){return a+b;}
};

class Minu:public Caculate{
    public:
    int GetResult(int a,int b,char c){return a-b;}
};
//相同的代码，不同的表现形式

int main ()
{
    Caculate* cal[10];
    cal[0] = new Add();
    cal[1] = new Minu();
    std::cout<<cal[0]->GetResult(1,2,'+')<<std::endl;
    int a,b;
    char c;//  +-*/
    std::cin>>a>>b>>c;
    return 0;
}